
//随机工具类
export default class RandomUtil{

    //用于同步的随机方法
    static SyncRandom(seed,start = 0):() => number{

        for(let i = 0; i < start; i++){
            seed = (seed * 9301 + 49297) % 233280;
        }

        return (max = 1, min = 0) => {
            seed = (seed * 9301 + 49297) % 233280;
            let rnd = seed / 233280.0;
            return min + rnd * (max - min);
        }

    }

    //++
    static Next(start:number):() => number{
        return () => {
            return start++;
        }
    }

    //同步随机数字
    static SyncRandomInt(random, min, max){
        return Math.round(random * (max - min)) + min;
    }

    //不可以用于同步的随机(普通随机 同步时禁止使用 负责导致不同步)
    static RandomInt(min, max) {
        return Math.round(Math.random() * (max - min)) + min;
    }

}

